package com.qinggeng.project.api.controller;

import com.qinggeng.common.enums.ShowTypeEnum;
import com.qinggeng.common.exception.CustomException;
import com.qinggeng.framework.web.domain.AjaxResult;
import com.qinggeng.project.api.dto.InvitCodeDTO;
import com.qinggeng.project.api.security.annotation.LoginRequired;
import com.qinggeng.project.api.security.utils.ApiUtils;
import com.qinggeng.project.system.domain.UserInvitCode;
import com.qinggeng.project.system.domain.vo.UserInvitCodeVO;
import com.qinggeng.project.system.service.UserInvitCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("${apiPath}/userInvitCode")
@CrossOrigin
public class ApiUserInvitCodeController {
    @Autowired
    private UserInvitCodeService userInvitCodeService;

    @GetMapping
    @LoginRequired
    public AjaxResult getUserInvitCode(InvitCodeDTO dto){
        Long userId=ApiUtils.getUserId();
        dto.setUserId(userId);
        UserInvitCode userInvitCode=userInvitCodeService.createInvitCode(dto);
        String code=userInvitCode.getInvitCode();
        return AjaxResult.success(code);
    }
    @PostMapping
    @LoginRequired
    public AjaxResult getUserInvitCodeVO(String command,String adCode) {
        UserInvitCodeVO userInvitCodeVO= userInvitCodeService.getUserInvitCodeVO(command,adCode);
        Long userId=ApiUtils.getUserId();
        if (userId== userInvitCodeVO.getUserId()){
            throw  new CustomException("当前口令属于自己", ShowTypeEnum.后台.getValue());
        }
        return AjaxResult.success(userInvitCodeVO);
    }

}
